package com.shop.dao;

import com.shop.domain.Page;
import org.apache.ibatis.annotations.Param;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * BaseDao
 * 基础的dao接口
 * Created by heqianqian on 2017/7/10.
 */
public interface BaseDao<T> {

    /**
     * 分页查询
     *
     * @param page Page
     * @return List<T>
     */
    List<T> findPage(Page page);

    /**
     * 根据条件查询
     *
     * @param paraMap 查询条件
     * @return List<T>
     */
    List<T> find(Map paraMap);

    /**
     * 只查询一个对象
     *
     * @param id id
     * @return T
     */
    T get(Serializable id);

    /**
     * 插入对象
     *
     * @param entity T
     */
    void insert(T entity);

    /**
     * 修改对象
     *
     * @param entity T
     */
    void update(T entity);

    /**
     * 按id删除
     *
     * @param id id
     */
    void deleteById(Serializable id);

    /**
     * 批量删除
     *
     * @param ids id[]
     */
    void delete(Serializable[] ids);

}
